N1_CSS 預處理器


Posted by Christy on 2021-09-11

[FE201]_寫 CSS 好簡單:CSS 預處理器

什麼是 CSS 預處理器?

為什麼要用?CSS 寫起來不像是一個程式語言,如果可以用程式語言的概念寫迴圈等等在裡面,會更方便使用。而 CSS 預處理器就是可以把 CSS 轉換成程式語言的一個翻譯器。

SCSS 簡介:可以去 官網 看一下指令

用 SCSS 比較符合原本 css 的寫法,Sass 則有自己的規則,要習慣一下

基本用法:

1.要怎麼使用 sass 把寫的 scss 作轉換?

先建立一個 style.scss,在裡面寫的 style 經過 sass style.scss s.css 以後,就會多兩個檔案出來。

一個是 s.css,就是從 style.scss 編譯而來的
另一個是s.css.map,如果有 source map,在 debug 的時候瀏覽器會給你原本的資訊。

//  style.scss
$primary-color: #333;

div {
  color: red;
}

2.sass --watch style.scss s.css 自動偵測 style.scss,去改變 s.css 做編譯

根據官方文件,分成以下幾個部份:

1.Variables

可以寫一些變數共用:

//  style.scss
$primary-color: #333;

div {
  color: $primary-color;
}

雖然 css 新標準 variables 可以做到一樣的事,但 sass 的瀏覽器支援度還是比較好

2. Nesting

官網寫得很清單

SCSS SYNTAX
nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { display: inline-block; }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

compile 完就變成:

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}

3. Mixins

有點像是函式的感覺

//  可以在 scss 檔案最上面寫函式
@mixin full() {
  width: 100%;
  height: 100%;
}

//  下面的 css 引入這個函式
.box {
  @include full();
}
//  css complie 以後會長這樣

.box {
  width: 100%;
  height: 100%;
}

4. & 代表自己

可以在 documentation syntax 裡面找資料

div {
  color: $primary-color;

  &:hover{
    color: red;
  }
}
//  compile 完以後
div {
  color: #000;
}
div:hover {
  color: red;
}

SCSS 實戰

把之前報名表單改成 scss

總結:

1.less, stylus 也是一些有名的預處理器

2.可以參考 Lidemy 官網的 結構










Related Posts

SQL Injection(SQL 注入、SQLi) 攻擊原理

SQL Injection(SQL 注入、SQLi) 攻擊原理

Leetcode279. Perfect Squares

Leetcode279. Perfect Squares

BS5 使用 SCSS 覆蓋新增Variable

BS5 使用 SCSS 覆蓋新增Variable


Comments